/* 提供登录和注册接口 */
// 1.导入用于生成JWT字符串的包
const jwt = require('jsonwebtoken')
// 引入express服务器
const express = require('express');
// 创建路由
const router = express.Router();
// 引入db
const pool = require('../db');
// 引入md5加密
const utility = require('utility');



// 注册接口
router.post('/reguser', (req, res) => {
  // req.body可以拿到post请求体的内容
  // 用md5加密密码
  req.body.password = utility.md5('abc' + req.body.password + 'efg');
  // 数据库中插入
  pool.query('insert into user set ?', req.body, (err, results) => {
    // 有错误就返回错误
    if (err) {
      console.log(err);
      return res.send({
        status: 1,
        message: "用户名已经被注册了！"
      })
    }
    // 影响的行等于1就是成功
    if (results.affectedRows === 1) {
      return res.send({
        status: 0,
        message: "注册成功！"
      })
    } else {
      return res.send({
        status: 1,
        message: "注册失败！"
      })
    }
  })
})



// 登录接口
router.post('/login', (req, res) => {
  // 可以拿到post请求体的内容
  let {username,password} = req.body;
  // 加密密码
  password = utility.md5('abc' + password + 'efg');
  // 查询数据库中是否有对应的账号和密码
  pool.query('select * from user where username = ? and password = ?',[username,password], (err, results) => {
    // 有错误就返回错误
    if (err) {
      console.log(err);
      return res.send({
        status: 1,
        message: "登陆失败！"
      })
    }
    // 查询到的数据数量大于0就是成功
    if (results.length > 0) {
      return res.send({
        status: 0,
        message: "登录成功成功！",
        // 返回token，后台加上Bearer   后台不加前台加，有Bearer才是完整的token     itheima-83密钥    expiresIn: '24h'   24小时过期
        token: 'Bearer ' + jwt.sign({username: username}, 'big_event_83', {expiresIn: '24h'})
      })
    } else {
      return res.send({
        status: 1,
        message: "用户名或密码错误！"
      })
    }
  })
})



















module.exports = router